home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ABERMUD.ZIP / BLIB.C < prev    next >
C/C++ Source or Header  |  1989-07-08  |  2KB  |  167 lines

  1. #include <stdio.h>
  2. #include <pwd.h>
  3.  
  4. /*
  5.  *
  6.  *    B functions and utilities
  7.  *
  8.  */
  9.  
  10. #include <ctype.h>
  11. #include "System.h"
  12.  
  13. char *lowercase(str)
  14. char *str;
  15. {
  16.     char *stp=str;
  17.     while(*str)
  18.     {
  19.         if(isupper(*str)) *str=tolower(*str);
  20.         str++;
  21.     }
  22. return(stp);
  23. }
  24.  
  25. char *uppercase(str)
  26. char *str;
  27. {
  28.     char *stp=str;
  29.     while(*str)
  30.     {
  31.         if(islower(*str)) *str=toupper(*str);
  32.         str++;
  33.     }
  34. return(stp);
  35. }
  36.  
  37. char *trim(str)
  38. char *str;
  39. {
  40.     char *x;
  41.     x=str+strlen(str);
  42.     while(*x==32)
  43.     {
  44.         *x=0;
  45.         x--;
  46.     }
  47.     return(str);
  48. }
  49.  
  50. int any(ch,str)
  51. char ch;
  52. char *str;
  53. {
  54.     extern char *strchr();
  55.     if(strchr(str,ch)==NULL) return(-1);
  56.     return(strchr(str,ch)-str);
  57. }
  58.  
  59. void gepass(str)
  60. {
  61.     char key[33],pw[16];
  62.  
  63.     strcpy(key,getpass(""));
  64.     strcpy(pw,crypt(key,"XX"));
  65.     strcpy(str,pw);
  66. }
  67.  
  68. int scan(out,in,start,skips,stops)
  69. char *in,*out,*skips,*stops;
  70. {
  71.     char *in_base=in;
  72. /*    char *sy_ot=out;
  73.     printf("Scan(%s ->%d %d %s %s",in,out,start,skips,stops);*/
  74.     if(strlen(in)<start) {*out=0;return(-1);}
  75.     in+=start;
  76.     while((*in)&&(strchr(skips,*in))) in++;
  77.     if(*in==0) {*out=0;return(-1);}
  78.     while((*in)&&(strchr(stops,*in)==0))
  79.     {
  80.         *out= *in;
  81.         out++;
  82.         in++;
  83.     }
  84. /*    printf(" : Outputting %s\n",sy_ot); */
  85.     *out=0;
  86.     return(in-in_base);
  87. }
  88.  
  89. char *getstr(file,st)
  90. FILE *file;
  91. char *st;
  92. {
  93.     extern char *strchr();
  94.     if(!fgets(st,255,file)) return(0);
  95.     if(strchr(st,'\n')) *strchr(st,'\n')=0;
  96.     return(st);
  97. }
  98.  
  99. void addchar(str,ch)
  100. char *str;
  101. char ch;
  102. {
  103.     int x=strlen(str);
  104.     str[x]=ch;
  105.     str[x+1]=0;
  106. }
  107.  
  108. long numarg(str)
  109. char *str;
  110. {
  111.     long i=0;
  112.     sscanf(str," %ld",&i);
  113.     return(i);
  114. }
  115.  
  116. sbar()
  117. {
  118.     return(-1); /* Unknown code needed here */
  119. }
  120.  
  121. void f_listfl(name,file)
  122. char *name;
  123. FILE *file;
  124. {
  125.     FILE *a;
  126.     char x[128];
  127.     a=fopen(name,"r");
  128.     if(a==NULL) fprintf(stderr,"[Cannot find file ->%s ]\n",name);
  129.     else
  130.         {
  131.     while(fgets(x,127,a)) fprintf(file,"%s",x);
  132.         }
  133. }
  134.  
  135.  
  136. void sec_read(unit,block,pos,len)
  137. FILE *unit;
  138. long *block;
  139. long pos;
  140. long len;
  141. {
  142.     fseek(unit,pos*64*sizeof(long),0);
  143.     fread((char *)block,len*(sizeof(long)),1,unit);
  144. }
  145.  
  146. void sec_write(unit,block,pos,len)
  147. FILE *unit;
  148. long *block;
  149. long pos;
  150. long len;
  151. {
  152.     fseek(unit,pos*64*sizeof(long),0);
  153.     fwrite((char *)block,len*(sizeof(long)),1,unit);
  154. }
  155.  
  156. char *cuserid(str)
  157. char *str;
  158. {
  159.     extern char *strchr();
  160.     static char ary[128];
  161.     getpw(getuid(),ary);
  162.     *strchr(ary,':')=0;
  163.     if(str!=NULL) strcpy(str,ary);
  164.     return(ary);
  165. }
  166.     
  167.